multivars is package{
  -- Test the simultaneous declaration and assignment of variables
 
  main has type action();
  main() do {
    logMsg(info,"split of $testLists on element 3 is $((Ls,Rs))");
  };
  
  testLists is list{1;2;3;4;5;6};
  
  (Ls,Rs) is split(testLists,3);
  
  split has type (list of %t,integer) => (list of %t, list of %t);
  split(L,Count) is let{
    splitter has type (list of %t, list of %t, integer) => (list of %t, list of %t);
    splitter(Ll,R,0) is (reverse(R,list{}), Ll);
    splitter(list{E;..Ll},R,Cx) is splitter(Ll,list{E;..R},Cx-1);
  } in splitter(L,list{},Count);
  
  reverse has type (list of %t,list of %t) => list of %t;
  reverse(list{},R) is R;
  reverse(list{E;..L},R) is reverse(L,list{E;..R});
  
}